package entities;

import java.io.Serializable;

import javax.persistence.*;


import menagement.dto.VoloDTO;

import java.sql.Time;
import java.util.Date;


/**
 * The persistent class for the Volo database table.
 * 
 */
@Entity
@NamedQueries({
	@NamedQuery(name="Volo.findCittaVoliPerCodice", query="SELECT v FROM Volo v WHERE v.codice= :codice AND v.valido= TRUE"),
	@NamedQuery(name="Volo.findTuttiVoliPerCodice", query="SELECT v FROM Volo v WHERE v.codice= :codice AND v.valido= TRUE"), //per quando l'utente vede i suoi acquisti
	@NamedQuery(name="Volo.findAll", query="SELECT v FROM Volo v WHERE v.valido= TRUE ORDER BY v.cittaArrivo "),
	@NamedQuery(name="Volo.findVoliPerCitta", query="SELECT v FROM Volo v WHERE v.cittaArrivo= :citta AND v.valido= TRUE")
})
public class Volo implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int codice;

	private String aeroportoArrivo;

	private String aeroportoPartenza;

	private String cittaArrivo;

	private String cittaPartenza;

	@Temporal(TemporalType.TIMESTAMP)
	private Date data;
	@Temporal(TemporalType.TIMESTAMP)
	private Date dataRitorno;
	private Time durata;

	private int posti_Disponibili;

	private int prezzo;
	
	private boolean valido;


	public Volo() {
	}
	
	public Volo(VoloDTO volo){
		this.aeroportoArrivo=volo.getAeroportoArrivo();
		this.aeroportoPartenza=volo.getAeroportoPartenza();
		this.cittaPartenza=volo.getCittaPartenza();
		this.cittaArrivo=volo.getCittaArrivo();
		this.data=volo.getData();
		this.durata=volo.getDurata();
		this.posti_Disponibili=volo.getPosti_Disponibili();
		this.prezzo=volo.getPrezzo();
		this.codice=volo.getCodice();
		this.dataRitorno=volo.getDataRitorno();
	}
	
	
	public boolean isValido() {
		return valido;
	}

	public void setValido(boolean valido) {
		this.valido = valido;
	}
		
	public Date getDataRitorno() {
		return dataRitorno;
	}

	public void setDataRitorno(Date dataRitorno) {
		this.dataRitorno = dataRitorno;
	}

	public int getCodice() {
		return this.codice;
	}

	public void setCodice(int codice) {
		this.codice = codice;
	}

	public String getAeroportoArrivo() {
		return this.aeroportoArrivo;
	}

	public void setAeroportoArrivo(String aeroportoArrivo) {
		this.aeroportoArrivo = aeroportoArrivo;
	}

	public String getAeroportoPartenza() {
		return this.aeroportoPartenza;
	}

	public void setAeroportoPartenza(String aeroportoPartenza) {
		this.aeroportoPartenza = aeroportoPartenza;
	}

	public String getCittaArrivo() {
		return this.cittaArrivo;
	}

	public void setCittaArrivo(String cittaArrivo) {
		this.cittaArrivo = cittaArrivo;
	}

	public String getCittaPartenza() {
		return this.cittaPartenza;
	}

	public void setCittaPartenza(String cittaPartenza) {
		this.cittaPartenza = cittaPartenza;
	}

	public Date getData() {
		return this.data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public Time getDurata() {
		return this.durata;
	}

	public void setDurata(Time durata) {
		this.durata = durata;
	}


	public int getPosti_Disponibili() {
		return this.posti_Disponibili;
	}

	public void setPosti_Disponibili(int posti_Disponibili) {
		this.posti_Disponibili = posti_Disponibili;
	}

	public int getPrezzo() {
		return this.prezzo;
	}

	public void setPrezzo(int prezzo) {
		this.prezzo = prezzo;
	}


}